Micron Document
C.S.Burner 🪙 ━►🔥GIT Node

Node / reticulum_mirror / MeshChatX / files / meshchatx / src / frontend / components / tools / RNodeFlasherPage.vue

Displaying Raw • Download

meshchatx/src/frontend/components/tools/RNodeFlasherPage.vue e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 45.17 KB

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3SPDXTff7b72-Te6edf3LicenseTff7b72-Te6edf3IdentifierTff7b72: T79c0ff0Te6edf3BSD Tff7b72-Tff7b72-Tff7b72>

Tff7b72<Te6edf3templateTff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffflex flex-col flex-1 overflow-hidden min-w-0 bg-slate-50 dark:bg-zinc-950Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3ToolsPageHeader
Te6edf3iconTff7b72=Ta5d6ff"Ta5d6fflightning-boltTa5d6ff"
Tff7b72:Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff$t('tools.rnode_flasher.title')Ta5d6ff"
Tff7b72:Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ff$t('tools.rnode_flasher.description')Ta5d6ff"
Te6edf3accentTff7b72=Ta5d6ff"Ta5d6ffpurpleTa5d6ff"
Tff7b72>
Tff7b72<Te6edf3template #Te6edf3actionsTff7b72>
Tff7b72<Te6edf3span
Te6edf3vTff7b72-Tff7b72ifTff7b72=Ta5d6ff"Ta5d6ffconnectedTransportLabelTa5d6ff"
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffhidden sm:inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wider bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-300Ta5d6ff"
Tff7b72>
Tff7b72<Te6edf3MaterialDesignIcon Te6edf3iconTff7b72-Te6edf3nameTff7b72=Ta5d6ff"Ta5d6fflink-variantTa5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffsize-3Ta5d6ff" Tff7b72/Tff7b72>
Tb4b4b4{Tb4b4b4{ Te6edf3connectedTransportLabel Tb4b4b4}Tb4b4b4}
Tff7b72<Tff7b72/Te6edf3spanTff7b72>
Tff7b72<Te6edf3button
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffp-2 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors flex items-center gap-2 text-sm font-mediumTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Ta5d6ffshowAdvanced = !showAdvancedTa5d6ff"
Tff7b72>
Tff7b72<Te6edf3MaterialDesignIcon Tff7b72:Te6edf3iconTff7b72-Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffshowAdvanced ? 'cog' : 'cog-outline'Ta5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffsize-5Ta5d6ff" Tff7b72/Tff7b72>
Tff7b72<Te6edf3span Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffhidden sm:inlineTa5d6ff"Tff7b72>
Tb4b4b4{Tb4b4b4{ Te6edf3showAdvanced Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.simpleTa5d6ff"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.advancedTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4}
Tff7b72<Tff7b72/Te6edf3spanTff7b72>
Tff7b72<Tff7b72/Te6edf3buttonTff7b72>
Tff7b72<Te6edf3a
Te6edf3hrefTff7b72=Ta5d6ff"Ta5d6ff/rnode-flasher/index.htmlTa5d6ff"
Te6edf3targetTff7b72=Ta5d6ff"Ta5d6ff_blankTa5d6ff"
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffp-2 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors flex items-center gap-2 text-sm font-mediumTa5d6ff"
Tff7b72:Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff$t('tools.rnode_flasher.open_original_tab')Ta5d6ff"
Tff7b72>
Tff7b72<Te6edf3MaterialDesignIcon Te6edf3iconTff7b72-Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffopen-in-newTa5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffsize-5Ta5d6ff" Tff7b72/Tff7b72>
Tff7b72<Te6edf3span Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffhidden sm:inlineTa5d6ff"Tff7b72>Tb4b4b4{Tb4b4b4{ Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.originalTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4}Tff7b72<Tff7b72/Te6edf3spanTff7b72>
Tff7b72<Tff7b72/Te6edf3aTff7b72>
Tff7b72<Tff7b72/Te6edf3templateTff7b72>
Tff7b72<Tff7b72/Te6edf3ToolsPageHeaderTff7b72>

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3content Tff7b72-Tff7b72-Tff7b72>
Tff7b72<Te6edf3div
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffflex-1 min-h-0 min-w-0 overflow-y-auto p-3 sm:p-6 space-y-4 sm:space-y-6 pb-[max(1.5rem,env(safe-area-inset-bottom))]Ta5d6ff"
Tff7b72>
Tff7b72<Te6edf3RNodeCapabilitiesBanner
Tff7b72:Te6edf3capabilitiesTff7b72=Ta5d6ff"Ta5d6ffcapabilitiesTa5d6ff"
Tff7b72:Te6edf3androidTff7b72-Te6edf3availableTff7b72=Ta5d6ff"Ta5d6ffandroidBridge.isAvailable()Ta5d6ff"
Tb4b4b4@Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffonCapabilitiesActionTa5d6ff"
Tff7b72/Tff7b72>

Tff7b72<Te6edf3RNodeDiagnosticsPanel Tff7b72:Te6edf3diagnosticsTff7b72=Ta5d6ff"Ta5d6ffdiagnosticsTa5d6ff" Tff7b72/Tff7b72>

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3setup Te6edf3card Tff7b72-Tff7b72-Tff7b72>
Tff7b72<Te6edf3div
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffborder border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 rounded-lg overflow-hiddenTa5d6ff"
Tff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffgrid grid-cols-1 md:grid-cols-2Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffp-4 sm:p-6 border-b md:border-b-0 md:border-r border-gray-100 dark:border-zinc-800Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3RNodeDeviceSelector
Tff7b72:Te6edf3stepTff7b72-Te6edf3numberTff7b72=Ta5d6ff"Ta5d6ff1Ta5d6ff"
Tff7b72:Te6edf3connectionTff7b72-Te6edf3methodTff7b72=Ta5d6ff"Ta5d6ffconnectionMethodTa5d6ff"
Tff7b72:Te6edf3wifiTff7b72-Te6edf3hostTff7b72=Ta5d6ff"Ta5d6ffwifiHostTa5d6ff"
Tff7b72:Te6edf3selectedTff7b72-Te6edf3productTff7b72=Ta5d6ff"Ta5d6ffselectedProductTa5d6ff"
Tff7b72:Te6edf3selectedTff7b72-Te6edf3modelTff7b72=Ta5d6ff"Ta5d6ffselectedModelTa5d6ff"
Tff7b72:Te6edf3productsTff7b72=Ta5d6ff"Ta5d6ffproductsTa5d6ff"
Tff7b72:Te6edf3capabilitiesTff7b72=Ta5d6ff"Ta5d6ffcapabilitiesTa5d6ff"
Tff7b72:Te6edf3isTff7b72-Te6edf3enteringTff7b72-Te6edf3dfuTff7b72-Te6edf3modeTff7b72=Ta5d6ff"Ta5d6ffisEnteringDfuModeTa5d6ff"
Tb4b4b4@Te6edf3updateTff7b72:Te6edf3connectionTff7b72-Te6edf3methodTff7b72=Ta5d6ff"Ta5d6ffconnectionMethod = $eventTa5d6ff"
Tb4b4b4@Te6edf3updateTff7b72:Te6edf3wifiTff7b72-Te6edf3hostTff7b72=Ta5d6ff"Ta5d6ffwifiHost = $eventTa5d6ff"
Tb4b4b4@Te6edf3updateTff7b72:Te6edf3selectedTff7b72-Te6edf3productTff7b72=Ta5d6ff"Ta5d6ffonSelectedProductChangeTa5d6ff"
Tb4b4b4@Te6edf3updateTff7b72:Te6edf3selectedTff7b72-Te6edf3modelTff7b72=Ta5d6ff"Ta5d6ffselectedModel = $eventTa5d6ff"
Tb4b4b4@Te6edf3enterTff7b72-Te6edf3dfuTff7b72=Ta5d6ff"Ta5d6ffenterDfuModeTa5d6ff"
Tff7b72/Tff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffp-4 sm:p-6 bg-gray-50/50 dark:bg-zinc-900/50Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3RNodeFirmwareSelector
Te6edf3refTff7b72=Ta5d6ff"Ta5d6fffirmwareSelectorTa5d6ff"
Tff7b72:Te6edf3stepTff7b72-Te6edf3numberTff7b72=Ta5d6ff"Ta5d6ff2Ta5d6ff"
Tff7b72:Te6edf3recommendedTff7b72-Te6edf3firmwareTff7b72-Te6edf3filenameTff7b72=Ta5d6ff"Ta5d6ffrecommendedFirmwareFilenameTa5d6ff"
Tff7b72:Te6edf3latestTff7b72-Tff7b72releaseTff7b72=Ta5d6ff"Ta5d6fflatestReleaseTa5d6ff"
Tff7b72:Te6edf3isTff7b72-Te6edf3downloadingTff7b72-Te6edf3firmwareTff7b72=Ta5d6ff"Ta5d6ffisDownloadingFirmwareTa5d6ff"
Tff7b72:Te6edf3firmwareTff7b72-Te6edf3fileTff7b72=Ta5d6ff"Ta5d6fffirmwareFileTa5d6ff"
Tb4b4b4@Te6edf3updateTff7b72:Te6edf3firmwareTff7b72-Te6edf3fileTff7b72=Ta5d6ff"Ta5d6fffirmwareFile = $eventTa5d6ff"
Tb4b4b4@Te6edf3downloadTff7b72-Te6edf3recommendedTff7b72=Ta5d6ff"Ta5d6ffdownloadRecommendedFirmwareTa5d6ff"
Tff7b72/Tff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffmt-4Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3RNodeFlashAction
Tff7b72:Te6edf3canTff7b72-Te6edf3flashTff7b72=Ta5d6ff"Ta5d6ffcanFlashTa5d6ff"
Tff7b72:Te6edf3isTff7b72-Te6edf3flashingTff7b72=Ta5d6ff"Ta5d6ffisFlashingTa5d6ff"
Tff7b72:Te6edf3flashingTff7b72-Te6edf3progressTff7b72=Ta5d6ff"Ta5d6ffflashingProgressTa5d6ff"
Tff7b72:Te6edf3flashingTff7b72-Te6edf3statusTff7b72=Ta5d6ff"Ta5d6ffflashingStatusTa5d6ff"
Tff7b72:Te6edf3errorTff7b72-Te6edf3messageTff7b72=Ta5d6ff"Ta5d6ffflashErrorTa5d6ff"
Tb4b4b4@Te6edf3flashTff7b72=Ta5d6ff"Ta5d6ffflashTa5d6ff"
Tff7b72/Tff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3provisionTff7b72/Te6edf3finalize Tff7b72-Tff7b72-Tff7b72>
Tff7b72<Te6edf3div
Te6edf3vTff7b72-Tff7b72ifTff7b72=Ta5d6ff"Ta5d6ffshowAdvanced || isProvisioning || isSettingFirmwareHashTa5d6ff"
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffborder border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 rounded-lg p-4 sm:p-6 space-y-6Ta5d6ff"
Tff7b72>
Tff7b72<Te6edf3RNodeProvisionPanel
Tff7b72:Te6edf3provisionTff7b72-Te6edf3stepTff7b72-Te6edf3numberTff7b72=Ta5d6ff"Ta5d6ff3Ta5d6ff"
Tff7b72:Te6edf3canTff7b72-Te6edf3provisionTff7b72=Ta5d6ff"Ta5d6ff!!selectedProduct && !!selectedModelTa5d6ff"
Tff7b72:Te6edf3isTff7b72-Te6edf3provisioningTff7b72=Ta5d6ff"Ta5d6ffisProvisioningTa5d6ff"
Tff7b72:Te6edf3isTff7b72-Te6edf3settingTff7b72-Te6edf3firmwareTff7b72-Te6edf3hashTff7b72=Ta5d6ff"Ta5d6ffisSettingFirmwareHashTa5d6ff"
Tb4b4b4@Te6edf3provisionTff7b72=Ta5d6ff"Ta5d6ffprovisionTa5d6ff"
Tb4b4b4@Te6edf3setTff7b72-Te6edf3hashTff7b72=Ta5d6ff"Ta5d6ffsetFirmwareHashTa5d6ff"
Tff7b72/Tff7b72>

Tff7b72<Te6edf3div Te6edf3vTff7b72-Tff7b72ifTff7b72=Ta5d6ff"Ta5d6ffshowAdvancedTa5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffpt-6 border-t border-gray-100 dark:border-zinc-800 space-y-4Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3RNodeAdvancedTools Tff7b72:Te6edf3disabledTff7b72-Te6edf3actionsTff7b72=Ta5d6ff"Ta5d6ffdisabledAdvancedActionsTa5d6ff" Tb4b4b4@Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffonAdvancedActionTa5d6ff" Tff7b72/Tff7b72>
Tff7b72<Te6edf3RNodeDeviceDisplay Tff7b72:Te6edf3imageTff7b72=Ta5d6ff"Ta5d6ffrnodeDisplayImageTa5d6ff" Tb4b4b4@Te6edf3clearTff7b72=Ta5d6ff"Ta5d6ffrnodeDisplayImage = nullTa5d6ff" Tff7b72/Tff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3config Te6edf3cards Tff7b72-Tff7b72-Tff7b72>
Tff7b72<Te6edf3div Te6edf3vTff7b72-Tff7b72ifTff7b72=Ta5d6ff"Ta5d6ffshowAdvancedTa5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffgrid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3RNodeBluetoothPanel Tb4b4b4@Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffonBluetoothActionTa5d6ff" Tff7b72/Tff7b72>
Tff7b72<Te6edf3RNodeTncPanel
Te6edf3vTff7b72-Te6edf3modelTff7b72:Te6edf3frequencyTff7b72=Ta5d6ff"Ta5d6ffconfigFrequencyTa5d6ff"
Te6edf3vTff7b72-Te6edf3modelTff7b72:Te6edf3bandwidthTff7b72=Ta5d6ff"Ta5d6ffconfigBandwidthTa5d6ff"
Te6edf3vTff7b72-Te6edf3modelTff7b72:Te6edf3txTff7b72-Te6edf3powerTff7b72=Ta5d6ff"Ta5d6ffconfigTxPowerTa5d6ff"
Te6edf3vTff7b72-Te6edf3modelTff7b72:Te6edf3spreadingTff7b72-Te6edf3factorTff7b72=Ta5d6ff"Ta5d6ffconfigSpreadingFactorTa5d6ff"
Tb4b4b4@Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffonTncActionTa5d6ff"
Tff7b72/Tff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>

Tff7b72<Tff7b72!Tff7b72-Tff7b72- Te6edf3help Te6edf3footer Tff7b72-Tff7b72-Tff7b72>
Tff7b72<Te6edf3div
Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffflex flex-col sm:flex-row items-center justify-between gap-3 p-4 border border-zinc-200 dark:border-zinc-800 rounded-2xl bg-zinc-50 dark:bg-zinc-900/30Ta5d6ff"
Tff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffflex items-center gap-3 text-sm text-zinc-500Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3MaterialDesignIcon Te6edf3iconTff7b72-Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffhelp-circle-outlineTa5d6ff" Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffsize-5Ta5d6ff" Tff7b72/Tff7b72>
Tff7b72<Te6edf3spanTff7b72>Tb4b4b4{Tb4b4b4{ Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.find_device_issueTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4}Tff7b72<Tff7b72/Te6edf3spanTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Te6edf3div Tff7b72classTff7b72=Ta5d6ff"Ta5d6ffflex items-center gap-4Ta5d6ff"Tff7b72>
Tff7b72<Te6edf3a
Te6edf3targetTff7b72=Ta5d6ff"Ta5d6ff_blankTa5d6ff"
Te6edf3hrefTff7b72=Ta5d6ff"Ta5d6ffhttps://github.com/liamcottle/rnode-flasherTa5d6ff"
Tff7b72classTff7b72=Ta5d6ff"Ta5d6fftext-blue-500 hover:underline text-sm font-boldTa5d6ff"
Tff7b72>Te6edf3RNode Te6edf3FlasherTff7b72<Tff7b72/Te6edf3a
Tff7b72>
Tff7b72<Te6edf3a
Te6edf3targetTff7b72=Ta5d6ff"Ta5d6ff_blankTa5d6ff"
Te6edf3hrefTff7b72=Ta5d6ff"Ta5d6ffhttps://github.com/markqvist/RNode_FirmwareTa5d6ff"
Tff7b72classTff7b72=Ta5d6ff"Ta5d6fftext-blue-500 hover:underline text-sm font-boldTa5d6ff"
Tff7b72>Te6edf3RNode Te6edf3FirmwareTff7b72<Tff7b72/Te6edf3a
Tff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3divTff7b72>
Tff7b72<Tff7b72/Te6edf3templateTff7b72>

Tff7b72<Te6edf3scriptTff7b72>
Te6edf3import Te6edf3MaterialDesignIcon Te6edf3from Ta5d6ff"Ta5d6ff../MaterialDesignIcon.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeCapabilitiesBanner Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeCapabilitiesBanner.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeDeviceSelector Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeDeviceSelector.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeFirmwareSelector Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeFirmwareSelector.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeFlashAction Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeFlashAction.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeAdvancedTools Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeAdvancedTools.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeBluetoothPanel Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeBluetoothPanel.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeTncPanel Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeTncPanel.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeProvisionPanel Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeProvisionPanel.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeDeviceDisplay Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeDeviceDisplay.vueTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeDiagnosticsPanel Te6edf3from Ta5d6ff"Ta5d6ff../rnode/RNodeDiagnosticsPanel.vueTa5d6ff"Tb4b4b4;

Te6edf3import Te6edf3RNode Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/RNode.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3ROM Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/ROM.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3Nrf52DfuFlasher Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/Nrf52DfuFlasher.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3RNodeUtils Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/RNodeUtils.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3products Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/products.jsTa5d6ff"Tb4b4b4;
Te6edf3import Tb4b4b4{
Te6edf3detectCapabilitiesTb4b4b4,
Te6edf3pickDefaultTransportTb4b4b4,
Te6edf3TRANSPORT_SERIALTb4b4b4,
Te6edf3TRANSPORT_BLUETOOTHTb4b4b4,
Te6edf3TRANSPORT_WIFITb4b4b4,
Tb4b4b4} Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/Capabilities.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3AndroidBridge Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/AndroidBridge.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3SerialTransport Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/transports/SerialTransport.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3BluetoothTransport Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/transports/BluetoothTransport.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3WifiTransport Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/transports/WifiTransport.jsTa5d6ff"Tb4b4b4;
Te6edf3import Tb4b4b4{ Te6edf3diagnose Tb4b4b4} Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/Diagnostics.jsTa5d6ff"Tb4b4b4;

Te6edf3import Te6edf3ToastUtils Te6edf3from Ta5d6ff"Ta5d6ff../../js/ToastUtils.jsTa5d6ff"Tb4b4b4;
Te6edf3import Te6edf3ToolsPageHeader Te6edf3from Ta5d6ff"Ta5d6ff./ToolsPageHeader.vueTa5d6ff"Tb4b4b4;
Te6edf3import Tb4b4b4{ Te6edf3rnodeIntegrityKeyForSrc Tb4b4b4} Te6edf3from Ta5d6ff"Ta5d6ff../../js/rnode/rnodeIntegrityKey.jsTa5d6ff"Tb4b4b4;

Te6edf3export Tff7b72default Tb4b4b4{
Te6edf3nameTb4b4b4: Ta5d6ff"Ta5d6ffRNodeFlasherPageTa5d6ff"Tb4b4b4,
Te6edf3componentsTb4b4b4: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Te6edf3ToolsPageHeaderTb4b4b4,
Te6edf3RNodeCapabilitiesBannerTb4b4b4,
Te6edf3RNodeDeviceSelectorTb4b4b4,
Te6edf3RNodeFirmwareSelectorTb4b4b4,
Te6edf3RNodeFlashActionTb4b4b4,
Te6edf3RNodeAdvancedToolsTb4b4b4,
Te6edf3RNodeBluetoothPanelTb4b4b4,
Te6edf3RNodeTncPanelTb4b4b4,
Te6edf3RNodeProvisionPanelTb4b4b4,
Te6edf3RNodeDeviceDisplayTb4b4b4,
Te6edf3RNodeDiagnosticsPanelTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3capabilitiesTb4b4b4: Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3androidBridgeTb4b4b4: Te6edf3new Te6edf3AndroidBridgeTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3connectionMethodTb4b4b4: Te6edf3TRANSPORT_SERIALTb4b4b4,
Te6edf3wifiHostTb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4,
Te6edf3selectedProductTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3selectedModelTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3productsTb4b4b4,
Te6edf3firmwareFileTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3isFlashingTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3flashingProgressTb4b4b4: T79c0ff0Tb4b4b4,
Te6edf3flashingStatusTb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4,
Te6edf3flashErrorTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3isProvisioningTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3isSettingFirmwareHashTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3isEnteringDfuModeTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3isDownloadingFirmwareTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3rnodeDisplayImageTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3showAdvancedTb4b4b4: Tffa657falseTb4b4b4,
Te6edf3latestReleaseTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3diagnosticsTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3connectedTransportLabelTb4b4b4: Te6edf3nullTb4b4b4,
Te6edf3configFrequencyTb4b4b4: T79c0ff917375000Tb4b4b4,
Te6edf3configBandwidthTb4b4b4: T79c0ff250000Tb4b4b4,
Te6edf3configTxPowerTb4b4b4: T79c0ff22Tb4b4b4,
Te6edf3configSpreadingFactorTb4b4b4: T79c0ff11Tb4b4b4,
Te6edf3configCodingRateTb4b4b4: T79c0ff5Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTb4b4b4: Tb4b4b4{
Te6edf3recommendedFirmwareFilenameTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3thisTb4b4b4.Te6edf3selectedModelTff7b72?Tb4b4b4.Te6edf3firmware_filename Tff7b72?Tff7b72? Te6edf3thisTb4b4b4.Te6edf3selectedProductTff7b72?Tb4b4b4.Te6edf3firmware_filenameTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3canFlashTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_WIFITb4b4b4) Tb4b4b4{
Tff7b72return Tffa657BooleanTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3wifiHost Tff7b72&Tff7b72& Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_BLUETOOTHTb4b4b4) Tb4b4b4{
Tff7b72return Tffa657falseTb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657BooleanTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3selectedProduct Tff7b72&Tff7b72& Te6edf3thisTb4b4b4.Te6edf3selectedModel Tff7b72&Tff7b72& Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3disabledAdvancedActionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_WIFITb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Ta5d6ff"Ta5d6ffdetectTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdiagnoseTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrebootTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffread-displayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdump-eepromTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffwipe-eepromTa5d6ff"Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3_onAndroidPermission Tff7b72= Tb4b4b4(Te6edf3eventTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3detail Tff7b72= Te6edf3eventTff7b72?Tb4b4b4.Te6edf3detailTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3detailTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3refreshCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3detailTb4b4b4.Te6edf3group Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffbluetoothTa5d6ff"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3detailTb4b4b4.Te6edf3grantedTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_grantedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_deniedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Te6edf3windowTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx-android-permissionTa5d6ff"Tb4b4b4, Te6edf3thisTb4b4b4.Te6edf3_onAndroidPermissionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3hasNativeRNodeFlasherTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3openRNodeFlasherTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.opened_nativeTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3refreshCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72= Te6edf3pickDefaultTransportTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3capabilitiesTb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3loadVendorLibrariesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3fetchLatestReleaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3_onAndroidPermissionTb4b4b4) Tb4b4b4{
Te6edf3windowTb4b4b4.Te6edf3removeEventListenerTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx-android-permissionTa5d6ff"Tb4b4b4, Te6edf3thisTb4b4b4.Te6edf3_onAndroidPermissionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTb4b4b4: Tb4b4b4{
Te6edf3refreshCapabilitiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3capabilities Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onSelectedProductChangeTb4b4b4(Te6edf3productTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3selectedProduct Tff7b72= Te6edf3productTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3selectedModel Tff7b72= Te6edf3nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3onCapabilitiesActionTb4b4b4(Te6edf3actionTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffload-polyfillTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3loadVendorLibrariesTb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.polyfill_loadingTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffopen-native-flasherTa5d6ff" Tff7b72|Tff7b72| Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffrequest-usbTa5d6ff"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3openRNodeFlasherTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.opened_nativeTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffrequest-bluetoothTa5d6ff"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3status Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3requestPermissionTb4b4b4(Te6edf3AndroidBridgeTb4b4b4.Te6edf3PERM_BLUETOOTHTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3status Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffgrantedTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_already_grantedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3status Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffsettingsTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_open_settingsTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3status Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffrequestedTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_requestedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.support.actions.bluetooth_unsupportedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3refreshCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffopen-bluetooth-settingsTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3openBluetoothSettingsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3fetchLatestReleaseTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Te6edf3await Te6edf3fetchTb4b4b4(Ta5d6ff"Ta5d6ff/api/v1/tools/rnode/latest_releaseTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3latestRelease Tff7b72= Te6edf3await Te6edf3responseTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Te6edf3catch Tb4b4b4{
T8b949e// offline-friendly: silently ignore so the rest of the page still works
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3_resolveRecommendedAssetUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3filename Tff7b72= Te6edf3thisTb4b4b4.Te6edf3recommendedFirmwareFilenameTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3filenameTb4b4b4) Tff7b72return Te6edf3nullTb4b4b4;
Tff7b72const Te6edf3asset Tff7b72= Te6edf3thisTb4b4b4.Te6edf3latestReleaseTff7b72?Tb4b4b4.Te6edf3assetsTff7b72?Tb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3aTb4b4b4) Tff7b72=Tff7b72> Te6edf3aTb4b4b4.Te6edf3name Tff7b72=Tff7b72=Tff7b72= Te6edf3filenameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3assetTff7b72?Tb4b4b4.Te6edf3browser_download_urlTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3assetTb4b4b4.Te6edf3browser_download_urlTb4b4b4;
Tb4b4b4}
Tff7b72return `Te6edf3httpsTff7b72:T8b949e//github.com/markqvist/RNode_Firmware/releases/latest/download/${filename}`;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3downloadRecommendedFirmwareTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3assetUrl Tff7b72= Te6edf3thisTb4b4b4.Te6edf3_resolveRecommendedAssetUrlTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3assetUrlTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.firmware_not_found_in_releaseTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3isDownloadingFirmware Tff7b72= Tffa657trueTb4b4b4;
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3downloadUrl Tff7b72= `Tff7b72/Te6edf3apiTff7b72/Te6edf3v1Tff7b72/Te6edf3toolsTff7b72/Te6edf3rnodeTff7b72/Te6edf3download_firmwareTff7b72?Te6edf3urlTff7b72=Te6edf3$Tb4b4b4{Te6edf3encodeURIComponentTb4b4b4(Te6edf3assetUrlTb4b4b4)Tb4b4b4}`Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Te6edf3await Te6edf3fetchTb4b4b4(Te6edf3downloadUrlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3errorData Tff7b72= Te6edf3await Te6edf3responseTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4(Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3responseTb4b4b4.Te6edf3statusText Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(Te6edf3errorDataTb4b4b4.Te6edf3error Tff7b72|Tff7b72| `Te6edf3Download Te6edf3failed Te6edf3with Te6edf3status Te6edf3$Tb4b4b4{Te6edf3responseTb4b4b4.Te6edf3statusTb4b4b4}`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3blob Tff7b72= Te6edf3await Te6edf3responseTb4b4b4.Te6edf3blobTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3file Tff7b72= Te6edf3new Te6edf3FileTb4b4b4(Tb4b4b4[Te6edf3blobTb4b4b4]Tb4b4b4, Te6edf3thisTb4b4b4.Te6edf3recommendedFirmwareFilenameTb4b4b4, Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"Ta5d6ffapplication/zipTa5d6ff" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3firmwareFile Tff7b72= Te6edf3fileTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3firmwareSelectorTff7b72?Tb4b4b4.Te6edf3setFileTb4b4b4(Te6edf3fileTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.firmware_downloadedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_downloadTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isDownloadingFirmware Tff7b72= Tffa657falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3loadVendorLibrariesTb4b4b4(Te6edf3force Tff7b72= Tffa657falseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3force Tff7b72&Tff7b72& Te6edf3windowTb4b4b4.Te6edf3zip Tff7b72&Tff7b72& Te6edf3windowTb4b4b4.Te6edf3CryptoJS Tff7b72&Tff7b72& Te6edf3windowTb4b4b4.Te6edf3ESPLoaderTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3libs Tff7b72= Tb4b4b4[
Ta5d6ff"Ta5d6ff/rnode-flasher/js/zip.min.jsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff/rnode-flasher/js/crypto-js@3.9.1-1/core.jsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff/rnode-flasher/js/crypto-js@3.9.1-1/md5.jsTa5d6ff"Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3lib Te6edf3of Te6edf3libsTb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_loadScriptTb4b4b4(Te6edf3libTb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4{
T8b949e// continue best-effort. loadVendorLibraries is best-effort and
T8b949e// missing assets surface later through clear error toasts
Tb4b4b4}
Tb4b4b4}
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3esptoolPath Tff7b72= Ta5d6ff"Ta5d6ff/rnode-flasher/js/esptool-js@0.4.5/bundle.jsTa5d6ff"Tb4b4b4;
Tff7b72const Te6edf3esptool Tff7b72= Te6edf3await Te6edf3importTb4b4b4(T8b949e/* @vite-ignore */ Te6edf3esptoolPathTb4b4b4)Tb4b4b4;
Te6edf3windowTb4b4b4.Te6edf3ESPLoader Tff7b72= Te6edf3esptoolTb4b4b4.Te6edf3ESPLoaderTb4b4b4;
Te6edf3windowTb4b4b4.Te6edf3Transport Tff7b72= Te6edf3esptoolTb4b4b4.Te6edf3TransportTb4b4b4;

Tff7b72const Te6edf3serialPolyfillPath Tff7b72= Ta5d6ff"Ta5d6ff/rnode-flasher/js/web-serial-polyfill@1.0.15/dist/serial.jsTa5d6ff"Tb4b4b4;
Tff7b72const Te6edf3serialPolyfill Tff7b72= Te6edf3await Te6edf3importTb4b4b4(T8b949e/* @vite-ignore */ Te6edf3serialPolyfillPathTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3serialPolyfillTb4b4b4.Te6edf3serialTb4b4b4) Tb4b4b4{
Te6edf3windowTb4b4b4.Te6edf3serial Tff7b72= Te6edf3serialPolyfillTb4b4b4.Te6edf3serialTb4b4b4;
Tb4b4b4}
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Ta5d6ffFailed to load ES module vendor libraries:Ta5d6ff"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3navigatorTb4b4b4.Te6edf3serial Tff7b72&Tff7b72& Te6edf3navigatorTb4b4b4.Te6edf3usb Tff7b72&Tff7b72& Te6edf3windowTb4b4b4.Te6edf3serialTb4b4b4) Tb4b4b4{
Te6edf3navigatorTb4b4b4.Te6edf3serial Tff7b72= Te6edf3windowTb4b4b4.Te6edf3serialTb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3refreshCapabilitiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_loadScriptTb4b4b4(Te6edf3srcTb4b4b4) Tb4b4b4{
T8b949e// Fetch and verify SRI before injecting
Tff7b72const Te6edf3integrity Tff7b72= Te6edf3thisTb4b4b4.Te6edf3_rnodeIntegrity Tff7b72|Tff7b72| Tb4b4b4(Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_loadRnodeIntegrityTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3filename Tff7b72= Te6edf3rnodeIntegrityKeyForSrcTb4b4b4(Te6edf3srcTb4b4b4, Te6edf3integrityTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3expectedHash Tff7b72= Te6edf3integrityTff7b72?Tb4b4b4.Tb4b4b4[Te6edf3filenameTb4b4b4]Tb4b4b4;

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3expectedHashTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(`Te6edf3RNodeTff7b72: Te6edf3SRI Te6edf3hash Te6edf3missing Tff7b72for Te6edf3$Tb4b4b4{Te6edf3filename Tff7b72|Tff7b72| Te6edf3srcTb4b4b4}Tb4b4b4. Te6edf3Refusing Te6edf3to Te6edf3load Te6edf3untrusted Te6edf3codeTb4b4b4.`Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3res Tff7b72= Te6edf3await Te6edf3fetchTb4b4b4(Te6edf3srcTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(`Te6edf3RNodeTff7b72: Te6edf3failed Te6edf3to Te6edf3fetch Te6edf3$Tb4b4b4{Te6edf3srcTb4b4b4} Tb4b4b4(Te6edf3$Tb4b4b4{Te6edf3resTb4b4b4.Te6edf3statusTb4b4b4}Tb4b4b4)`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3buf Tff7b72= Te6edf3await Te6edf3resTb4b4b4.Te6edf3arrayBufferTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3hash Tff7b72= Te6edf3await Te6edf3cryptoTb4b4b4.Te6edf3subtleTb4b4b4.Te6edf3digestTb4b4b4(Ta5d6ff"Ta5d6ffSHA-384Ta5d6ff"Tb4b4b4, Te6edf3bufTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3actualHash Tff7b72= Ta5d6ff"Ta5d6ffsha384-Ta5d6ff" Tff7b72+ Te6edf3btoaTb4b4b4(Te6edf3StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Tb4b4b4.Tb4b4b4.Tb4b4b4.Te6edf3new Te6edf3Uint8ArrayTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3actualHash Tff7b72!Tff7b72=Tff7b72= Te6edf3expectedHashTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(`Te6edf3RNodeTff7b72: Te6edf3SRI Te6edf3hash Te6edf3mismatch Tff7b72for Te6edf3$Tb4b4b4{Te6edf3filenameTb4b4b4}Tb4b4b4. Te6edf3Possible Te6edf3tampering Te6edf3detectedTb4b4b4.`Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e// Inject verified content as blob
Tff7b72const Te6edf3blob Tff7b72= Te6edf3new Te6edf3BlobTb4b4b4(Tb4b4b4[Te6edf3bufTb4b4b4]Tb4b4b4, Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"Ta5d6ffapplication/javascriptTa5d6ff" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blobUrl Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3new Td2a8ffPromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3script Tff7b72= Te6edf3documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"Ta5d6ffscriptTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3scriptTb4b4b4.Te6edf3src Tff7b72= Te6edf3blobUrlTb4b4b4;
Te6edf3scriptTb4b4b4.Te6edf3onload Tff7b72= Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Te6edf3resolveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3scriptTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Te6edf3rejectTb4b4b4(Te6edf3new Te6edf3ErrorTb4b4b4(`Te6edf3Failed Te6edf3to Te6edf3load Te6edf3$Tb4b4b4{Te6edf3srcTb4b4b4}`Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3documentTb4b4b4.Te6edf3headTb4b4b4.Te6edf3appendChildTb4b4b4(Te6edf3scriptTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_loadRnodeIntegrityTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3_rnodeIntegrityTb4b4b4) Tff7b72return Te6edf3thisTb4b4b4.Te6edf3_rnodeIntegrityTb4b4b4;
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3res Tff7b72= Te6edf3await Te6edf3fetchTb4b4b4(Ta5d6ff"Ta5d6ff/rnode-flasher/js/integrity.jsonTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resTb4b4b4.Te6edf3okTb4b4b4) Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(Ta5d6ff"Ta5d6ffFailed to load integrity.jsonTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3data Tff7b72= Te6edf3await Te6edf3resTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3_rnodeIntegrity Tff7b72= Te6edf3dataTb4b4b4.Te6edf3files Tff7b72|Tff7b72| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3thisTb4b4b4.Te6edf3_rnodeIntegrityTb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Ta5d6ffRNode: Failed to load integrity hashes:Ta5d6ff"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3throw Te6edf3eTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_openTransportTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_SERIALTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3transport Tff7b72= Te6edf3await Te6edf3SerialTransportTb4b4b4.Te6edf3requestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3transportTb4b4b4.Te6edf3openTb4b4b4(Tb4b4b4{ Te6edf3baudRateTff7b72: T79c0ff115200 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3connectedTransportLabel Tff7b72= Te6edf3transportTb4b4b4.Te6edf3descriptionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3transportTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_BLUETOOTHTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3isAvailableTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3ok Tff7b72= Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3hasPermissionTb4b4b4(Te6edf3AndroidBridgeTb4b4b4.Te6edf3PERM_BLUETOOTHTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3okTb4b4b4) Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3androidBridgeTb4b4b4.Te6edf3requestPermissionTb4b4b4(Te6edf3AndroidBridgeTb4b4b4.Te6edf3PERM_BLUETOOTHTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3transport Tff7b72= Te6edf3await Te6edf3BluetoothTransportTb4b4b4.Te6edf3requestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3transportTb4b4b4.Te6edf3openTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3connectedTransportLabel Tff7b72= Te6edf3transportTb4b4b4.Te6edf3descriptionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3transportTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3transport Tff7b72= Te6edf3new Te6edf3WifiTransportTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3wifiHostTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3transportTb4b4b4.Te6edf3openTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3connectedTransportLabel Tff7b72= Te6edf3transportTb4b4b4.Te6edf3descriptionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3transportTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_openRNodeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3transport Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_openTransportTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3rnode Tff7b72= Te6edf3new Te6edf3RNodeTb4b4b4(Te6edf3transportTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3rnodeTb4b4b4, Te6edf3transport Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_withRNodeTb4b4b4(Te6edf3callbackTb4b4b4) Tb4b4b4{
Te6edf3let Te6edf3session Tff7b72= Te6edf3nullTb4b4b4;
Te6edf3try Tb4b4b4{
Te6edf3session Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_openRNodeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3isRNode Tff7b72= Te6edf3await Te6edf3sessionTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3detectTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isRNodeTb4b4b4) Tb4b4b4{
Te6edf3await Te6edf3sessionTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.not_an_rnodeTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3result Tff7b72= Te6edf3await Te6edf3callbackTb4b4b4(Te6edf3sessionTb4b4b4.Te6edf3rnodeTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3sessionTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3resultTb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3sessionTff7b72?Tb4b4b4.Te6edf3rnodeTb4b4b4) Tb4b4b4{
Te6edf3await Te6edf3sessionTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3throw Te6edf3eTb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3connectedTransportLabel Tff7b72= Te6edf3nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3detectTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3ver Tff7b72= Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3getFirmwareVersionTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.rnode_detectedTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3versionTff7b72: Te6edf3ver Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(
Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_detect_with_reasonTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3runDiagnosticsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3expectedProductId Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedProductTff7b72?Tb4b4b4.Tffa657idTb4b4b4;
Tff7b72const Te6edf3expectedModelId Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedModelTff7b72?Tb4b4b4.Te6edf3mapped_id Tff7b72?Tff7b72? Te6edf3thisTb4b4b4.Te6edf3selectedModelTff7b72?Tb4b4b4.Tffa657idTb4b4b4;
Tff7b72const Te6edf3result Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72return Te6edf3diagnoseTb4b4b4(Te6edf3rnodeTb4b4b4, Tb4b4b4{ Te6edf3expectedProductIdTb4b4b4, Te6edf3expectedModelId Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3diagnostics Tff7b72= Te6edf3resultTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4.Te6edf3issuesTb4b4b4.Te6edf3length Tff7b72=Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.diagnostics_healthyTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(
Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.diagnostics_issuesTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3countTff7b72: Te6edf3resultTb4b4b4.Te6edf3issuesTb4b4b4.Te6edf3length Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_diagnosticsTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3rebootTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.rebootingTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_rebootTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3readDisplayTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3buffer Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72return Te6edf3rnodeTb4b4b4.Te6edf3readDisplayTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3bufferTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3rnodeDisplayImage Tff7b72= Te6edf3thisTb4b4b4.Te6edf3_displayBufferToPngTb4b4b4(Te6edf3bufferTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_read_displayTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3dumpEepromTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3eeprom Tff7b72= Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Te6edf3rnodeTb4b4b4.Te6edf3getRomTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3eepromTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3RNodeUtilsTb4b4b4.Te6edf3bytesToHexTb4b4b4(Te6edf3eepromTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.eeprom_dumpedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_dump_eepromTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3wipeEepromTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3confirmTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.eeprom_wipe_confirmTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3wipeRomTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.eeprom_wipedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_wipe_eepromTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3onAdvancedActionTb4b4b4(Te6edf3actionTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3map Tff7b72= Tb4b4b4{
Te6edf3detectTb4b4b4: Te6edf3thisTb4b4b4.Te6edf3detectTb4b4b4,
Te6edf3diagnoseTb4b4b4: Te6edf3thisTb4b4b4.Te6edf3runDiagnosticsTb4b4b4,
Te6edf3rebootTb4b4b4: Te6edf3thisTb4b4b4.Te6edf3rebootTb4b4b4,
Ta5d6ff"Ta5d6ffread-displayTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3readDisplayTb4b4b4,
Ta5d6ff"Ta5d6ffdump-eepromTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3dumpEepromTb4b4b4,
Ta5d6ff"Ta5d6ffwipe-eepromTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3wipeEepromTb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3mapTb4b4b4[Te6edf3actionTb4b4b4]Tff7b72?Tb4b4b4.Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onBluetoothActionTb4b4b4(Te6edf3actionTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3map Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffenable-bluetoothTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3enableBluetoothTb4b4b4,
Ta5d6ff"Ta5d6ffdisable-bluetoothTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3disableBluetoothTb4b4b4,
Ta5d6ff"Ta5d6ffpair-bluetoothTa5d6ff"Tff7b72: Te6edf3thisTb4b4b4.Te6edf3startBluetoothPairingTb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3mapTb4b4b4[Te6edf3actionTb4b4b4]Tff7b72?Tb4b4b4.Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onTncActionTb4b4b4(Te6edf3actionTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffenable-tncTa5d6ff"Tb4b4b4) Te6edf3thisTb4b4b4.Te6edf3enableTncModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3action Tff7b72=Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffdisable-tncTa5d6ff"Tb4b4b4) Te6edf3thisTb4b4b4.Te6edf3disableTncModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3enterDfuModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isEnteringDfuMode Tff7b72= Tffa657trueTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3nullTb4b4b4;
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3transport Tff7b72= Te6edf3await Te6edf3SerialTransportTb4b4b4.Te6edf3requestTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3flasher Tff7b72= Te6edf3new Te6edf3Nrf52DfuFlasherTb4b4b4(Te6edf3transportTb4b4b4.Te6edf3portTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3flasherTb4b4b4.Te6edf3enterDfuModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.dfu_readyTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_dfuTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isEnteringDfuMode Tff7b72= Tffa657falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3flashTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3nullTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.select_firmware_firstTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_WIFITb4b4b4) Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_flashWifiTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3connectionMethod Tff7b72=Tff7b72=Tff7b72= Te6edf3TRANSPORT_BLUETOOTHTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.bluetooth_flash_unsupportedTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72switch Tb4b4b4(Te6edf3thisTb4b4b4.Te6edf3selectedProductTff7b72?Tb4b4b4.Te6edf3platformTb4b4b4) Tb4b4b4{
Tff7b72case Tff7b72ROMTb4b4b4.Tff7b72PLATFORM_ESP32Tb4b4b4:
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_flashEsp32Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Tff7b72ROMTb4b4b4.Tff7b72PLATFORM_NRF52Tb4b4b4:
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_flashNrf52Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72defaultTff7b72:
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.select_product_firstTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_flashWifiTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3WifiTransportTb4b4b4.Te6edf3isValidHostTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3wifiHostTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.invalid_hostTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657trueTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.preparing_firmwareTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3try Tb4b4b4{
Tff7b72const Te6edf3flashConfig Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedModelTff7b72?Tb4b4b4.Te6edf3flash_config Tff7b72?Tff7b72? Te6edf3thisTb4b4b4.Te6edf3selectedProductTff7b72?Tb4b4b4.Te6edf3flash_configTb4b4b4;
Tff7b72const Te6edf3blobReader Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3BlobReaderTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3zipReader Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3ZipReaderTb4b4b4(Te6edf3blobReaderTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3zipEntries Tff7b72= Te6edf3await Te6edf3zipReaderTb4b4b4.Te6edf3getEntriesTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3let Te6edf3mainBinFilename Tff7b72= Te6edf3flashConfigTff7b72?Tb4b4b4.Te6edf3flash_filesTff7b72?Tb4b4b4.Tb4b4b4[Ta5d6ff"Ta5d6ff0x10000Ta5d6ff"Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mainBinFilenameTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3binEntry Tff7b72= Te6edf3zipEntriesTb4b4b4.Te6edf3findTb4b4b4(
Tb4b4b4(Te6edf3eTb4b4b4) Tff7b72=Tff7b72>
Te6edf3eTb4b4b4.Te6edf3filenameTb4b4b4.Te6edf3endsWithTb4b4b4(Ta5d6ff"Ta5d6ff.binTa5d6ff"Tb4b4b4) Tff7b72&Tff7b72&
Tff7b72!Te6edf3eTb4b4b4.Te6edf3filenameTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"Ta5d6ffbootloaderTa5d6ff"Tb4b4b4) Tff7b72&Tff7b72&
Tff7b72!Te6edf3eTb4b4b4.Te6edf3filenameTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"Ta5d6ffpartitionsTa5d6ff"Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3binEntryTb4b4b4) Te6edf3mainBinFilename Tff7b72= Te6edf3binEntryTb4b4b4.Te6edf3filenameTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mainBinFilenameTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.no_main_binTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3entry Tff7b72= Te6edf3zipEntriesTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3eTb4b4b4) Tff7b72=Tff7b72> Te6edf3eTb4b4b4.Te6edf3filename Tff7b72=Tff7b72=Tff7b72= Te6edf3mainBinFilenameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3entryTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_extractTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3fileTff7b72: Te6edf3mainBinFilename Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3binBlob Tff7b72= Te6edf3await Te6edf3entryTb4b4b4.Te6edf3getDataTb4b4b4(Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3BlobWriterTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3transport Tff7b72= Te6edf3new Te6edf3WifiTransportTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3wifiHostTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3transportTb4b4b4.Te6edf3uploadTb4b4b4(Te6edf3binBlobTb4b4b4, Tb4b4b4(Te6edf3percentageTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= Te6edf3percentageTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.uploadingTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3percentage Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.flash_successTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_otaTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657falseTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_flashNrf52Tb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657trueTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.connecting_deviceTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3let Te6edf3transport Tff7b72= Te6edf3nullTb4b4b4;
Te6edf3try Tb4b4b4{
Te6edf3transport Tff7b72= Te6edf3await Te6edf3SerialTransportTb4b4b4.Te6edf3requestTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3flasher Tff7b72= Te6edf3new Te6edf3Nrf52DfuFlasherTb4b4b4(Te6edf3transportTb4b4b4.Te6edf3portTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3flasherTb4b4b4.Te6edf3flashTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4, Tb4b4b4(Te6edf3percentageTb4b4b4, Te6edf3messageTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= Te6edf3percentageTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3message Tff7b72|Tff7b72| Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.flashingTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3percentage Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.flash_successTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_flashTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657falseTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3transportTb4b4b4) Te6edf3await Te6edf3transportTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_flashEsp32Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3windowTb4b4b4.Te6edf3ESPLoaderTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.esptool_not_loadedTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3flashConfig Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedModelTff7b72?Tb4b4b4.Te6edf3flash_config Tff7b72?Tff7b72? Te6edf3thisTb4b4b4.Te6edf3selectedProductTff7b72?Tb4b4b4.Te6edf3flash_configTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3flashConfigTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.no_flash_configTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657trueTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.connecting_deviceTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3let Te6edf3transport Tff7b72= Te6edf3nullTb4b4b4;
Te6edf3try Tb4b4b4{
Te6edf3transport Tff7b72= Te6edf3await Te6edf3SerialTransportTb4b4b4.Te6edf3requestTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3blobReader Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3BlobReaderTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3firmwareFileTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3zipReader Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3ZipReaderTb4b4b4(Te6edf3blobReaderTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3zipEntries Tff7b72= Te6edf3await Te6edf3zipReaderTb4b4b4.Te6edf3getEntriesTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3filesToFlash Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Tb4b4b4[Te6edf3addressTb4b4b4, Te6edf3filenameTb4b4b4] Te6edf3of Te6edf3ObjectTb4b4b4.Te6edf3entriesTb4b4b4(Te6edf3flashConfigTb4b4b4.Te6edf3flash_filesTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3entry Tff7b72= Te6edf3zipEntriesTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3eTb4b4b4) Tff7b72=Tff7b72> Te6edf3eTb4b4b4.Te6edf3filename Tff7b72=Tff7b72=Tff7b72= Te6edf3filenameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3entryTb4b4b4) Tb4b4b4{
Te6edf3throw Te6edf3new Te6edf3ErrorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_extractTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3fileTff7b72: Te6edf3filename Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3blob Tff7b72= Te6edf3await Te6edf3entryTb4b4b4.Te6edf3getDataTb4b4b4(Te6edf3new Te6edf3windowTb4b4b4.Te6edf3zipTb4b4b4.Te6edf3BlobWriterTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3filesToFlashTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3addressTb4b4b4: Te6edf3parseIntTb4b4b4(Te6edf3addressTb4b4b4)Tb4b4b4,
Te6edf3dataTb4b4b4: Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_readAsBinaryStringTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3espTransport Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3TransportTb4b4b4(Te6edf3transportTb4b4b4.Te6edf3portTb4b4b4, Tffa657trueTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3esploader Tff7b72= Te6edf3new Te6edf3windowTb4b4b4.Te6edf3ESPLoaderTb4b4b4(Tb4b4b4{
Te6edf3transportTb4b4b4: Te6edf3espTransportTb4b4b4,
Te6edf3baudrateTb4b4b4: T79c0ff921600Tb4b4b4,
Te6edf3terminalTb4b4b4: Tb4b4b4{ Te6edf3writeLineTff7b72: Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4, Te6edf3writeTff7b72: Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4, Te6edf3cleanTff7b72: Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3await Te6edf3esploaderTb4b4b4.Te6edf3mainTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3esploaderTb4b4b4.Te6edf3writeFlashTb4b4b4(Tb4b4b4{
Te6edf3fileArrayTb4b4b4: Te6edf3filesToFlashTb4b4b4,
Te6edf3flashSizeTb4b4b4: Te6edf3flashConfigTb4b4b4.Te6edf3flash_sizeTb4b4b4,
Te6edf3flashModeTb4b4b4: Ta5d6ff"Ta5d6ffDIOTa5d6ff"Tb4b4b4,
Te6edf3flashFreqTb4b4b4: Ta5d6ff"Ta5d6ff80MHzTa5d6ff"Tb4b4b4,
Te6edf3calculateMD5HashTb4b4b4: Tb4b4b4(Te6edf3imgTb4b4b4) Tff7b72=Tff7b72> Te6edf3windowTb4b4b4.Te6edf3CryptoJSTb4b4b4.Te6edf3MD5Tb4b4b4(Te6edf3windowTb4b4b4.Te6edf3CryptoJSTb4b4b4.Te6edf3encTb4b4b4.Te6edf3Latin1Tb4b4b4.Te6edf3parseTb4b4b4(Te6edf3imgTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3reportProgressTb4b4b4: Tb4b4b4(Te6edf3idxTb4b4b4, Te6edf3writtenTb4b4b4, Te6edf3totalTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashingProgress Tff7b72= Te6edf3MathTb4b4b4.Te6edf3floorTb4b4b4(Tb4b4b4(Te6edf3written Tff7b72/ Te6edf3totalTb4b4b4) Tff7b72* T79c0ff100Tb4b4b4)Tb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.flashing_file_progressTa5d6ff"Tb4b4b4, Tb4b4b4{
Te6edf3currentTb4b4b4: Te6edf3idx Tff7b72+ T79c0ff1Tb4b4b4,
Te6edf3totalTb4b4b4: Te6edf3filesToFlashTb4b4b4.Te6edf3lengthTb4b4b4,
Te6edf3percentageTb4b4b4: Te6edf3thisTb4b4b4.Te6edf3flashingProgressTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3await Te6edf3espTransportTb4b4b4.Te6edf3setDTRTb4b4b4(Tffa657falseTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3new Te6edf3PromiseTb4b4b4(Tb4b4b4(Te6edf3rTb4b4b4) Tff7b72=Tff7b72> Te6edf3setTimeoutTb4b4b4(Te6edf3rTb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3espTransportTb4b4b4.Te6edf3setDTRTb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4;

Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.flash_successTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3flashError Tff7b72= Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_flashTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3flashErrorTb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isFlashing Tff7b72= Tffa657falseTb4b4b4;
Te6edf3thisTb4b4b4.Te6edf3flashingStatus Tff7b72= Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3transportTb4b4b4) Te6edf3await Te6edf3transportTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3provisionTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isProvisioning Tff7b72= Tffa657trueTb4b4b4;
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3rom Tff7b72= Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3getRomAsObjectTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3romTb4b4b4.Te6edf3parseTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.provisioned_alreadyTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3thisTb4b4b4.Te6edf3selectedProduct Tff7b72|Tff7b72| Tff7b72!Te6edf3thisTb4b4b4.Te6edf3selectedModelTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.select_product_firstTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3product Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedProductTb4b4b4.Tffa657idTb4b4b4;
Tff7b72const Te6edf3model Tff7b72= Te6edf3thisTb4b4b4.Te6edf3selectedModelTb4b4b4.Te6edf3mapped_id Tff7b72?Tff7b72? Te6edf3thisTb4b4b4.Te6edf3selectedModelTb4b4b4.Tffa657idTb4b4b4;
Tff7b72const Te6edf3hwRev Tff7b72= T79c0ff0x1Tb4b4b4;
Tff7b72const Te6edf3serial Tff7b72= T79c0ff1Tb4b4b4;
Tff7b72const Te6edf3now Tff7b72= Te6edf3MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3sBytes Tff7b72= Te6edf3RNodeUtilsTb4b4b4.Te6edf3packUInt32BETb4b4b4(Te6edf3serialTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3tBytes Tff7b72= Te6edf3RNodeUtilsTb4b4b4.Te6edf3packUInt32BETb4b4b4(Te6edf3nowTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3checksum Tff7b72= Te6edf3RNodeUtilsTb4b4b4.Te6edf3md5Tb4b4b4(Tb4b4b4[Te6edf3productTb4b4b4, Te6edf3modelTb4b4b4, Te6edf3hwRevTb4b4b4, Tb4b4b4.Tb4b4b4.Tb4b4b4.Te6edf3sBytesTb4b4b4, Tb4b4b4.Tb4b4b4.Tb4b4b4.Te6edf3tBytesTb4b4b4]Tb4b4b4)Tb4b4b4;

Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_PRODUCTTb4b4b4, Te6edf3productTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_MODELTb4b4b4, Te6edf3modelTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_HW_REVTb4b4b4, Te6edf3hwRevTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< T79c0ff4Tb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_SERIAL Tff7b72+ Te6edf3iTb4b4b4, Te6edf3sBytesTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_MADE Tff7b72+ Te6edf3iTb4b4b4, Te6edf3tBytesTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Te6edf3let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< T79c0ff16Tb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_CHKSUM Tff7b72+ Te6edf3iTb4b4b4, Te6edf3checksumTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< T79c0ff128Tb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_SIGNATURE Tff7b72+ Te6edf3iTb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3writeRomTb4b4b4(Te6edf3ROMTb4b4b4.Te6edf3ADDR_INFO_LOCKTb4b4b4, Te6edf3ROMTb4b4b4.Te6edf3INFO_LOCK_BYTETb4b4b4)Tb4b4b4;

Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff5000Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.provision_successTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_provisionTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isProvisioning Tff7b72= Tffa657falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3setFirmwareHashTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isSettingFirmwareHash Tff7b72= Tffa657trueTb4b4b4;
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3rom Tff7b72= Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3getRomAsObjectTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3romTb4b4b4.Te6edf3parseTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.not_provisionedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3hash Tff7b72= Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3getFirmwareHashTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setFirmwareHashTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff5000Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.hash_successTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_set_hashTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3finally Tb4b4b4{
Te6edf3thisTb4b4b4.Te6edf3isSettingFirmwareHash Tff7b72= Tffa657falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3enableTncModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setFrequencyTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3configFrequencyTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setBandwidthTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3configBandwidthTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setTxPowerTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3configTxPowerTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setSpreadingFactorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3configSpreadingFactorTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setCodingRateTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3configCodingRateTb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3setRadioStateOnTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff500Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3saveConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3saveConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff5000Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.tnc_enabledTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_enable_tncTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3disableTncModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3deleteConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff5000Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3resetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.tnc_disabledTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_disable_tncTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3enableBluetoothTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3enableBluetoothTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff1000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.bluetooth_enabledTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(
Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_enable_bluetoothTa5d6ff"Tb4b4b4, Tb4b4b4{
Te6edf3errorTb4b4b4: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3eTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3disableBluetoothTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3disableBluetoothTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3await Te6edf3RNodeUtilsTb4b4b4.Te6edf3sleepMillisTb4b4b4(T79c0ff1000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.bluetooth_disabledTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(
Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_disable_bluetoothTa5d6ff"Tb4b4b4, Tb4b4b4{
Te6edf3errorTb4b4b4: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3eTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3startBluetoothPairingTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3try Tb4b4b4{
Te6edf3await Te6edf3thisTb4b4b4.Te6edf3_withRNodeTb4b4b4(Te6edf3async Tb4b4b4(Te6edf3rnodeTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3await Te6edf3rnodeTb4b4b4.Te6edf3startBluetoothPairingTb4b4b4(Tb4b4b4(Te6edf3pinTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.bluetooth_pairing_pinTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3pin Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.alerts.bluetooth_pairing_startedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Te6edf3catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"Ta5d6fftools.rnode_flasher.errors.failed_start_pairingTa5d6ff"Tb4b4b4, Tb4b4b4{ Te6edf3errorTff7b72: Te6edf3eTb4b4b4.Te6edf3message Tff7b72|Tff7b72| Te6edf3e Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3async Te6edf3_readAsBinaryStringTb4b4b4(Te6edf3blobTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3new Td2a8ffPromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4) Tff7b72=Tff7b72> Tb4b4b4{
Tff7b72const Te6edf3r Tff7b72= Te6edf3new Te6edf3FileReaderTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3rTb4b4b4.Te6edf3onload Tff7b72= Tb4b4b4(Tb4b4b4) Tff7b72=Tff7b72> Te6edf3resolveTb4b4b4(Te6edf3rTb4b4b4.Te6edf3resultTb4b4b4)Tb4b4b4;
Te6edf3rTb4b4b4.Te6edf3readAsBinaryStringTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3_displayBufferToPngTb4b4b4(Te6edf3displayBufferTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3displayArea Tff7b72= Te6edf3displayBufferTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff512Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3statArea Tff7b72= Te6edf3displayBufferTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff512Tb4b4b4, T79c0ff1024Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3displayCanvas Tff7b72= Te6edf3thisTb4b4b4.Te6edf3_frameBufferToCanvasTb4b4b4(Te6edf3displayAreaTb4b4b4, T79c0ff64Tb4b4b4, T79c0ff64Tb4b4b4, Ta5d6ff"Ta5d6ff#000000Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#FFFFFFTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3statCanvas Tff7b72= Te6edf3thisTb4b4b4.Te6edf3_frameBufferToCanvasTb4b4b4(Te6edf3statAreaTb4b4b4, T79c0ff64Tb4b4b4, T79c0ff64Tb4b4b4, Ta5d6ff"Ta5d6ff#000000Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#FFFFFFTa5d6ff"Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3canvas Tff7b72= Te6edf3documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"Ta5d6ffcanvasTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3width Tff7b72= T79c0ff128Tb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3height Tff7b72= T79c0ff64Tb4b4b4;
Tff7b72const Te6edf3ctx Tff7b72= Te6edf3canvasTb4b4b4.Te6edf3getContextTb4b4b4(Ta5d6ff"Ta5d6ff2dTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3drawImageTb4b4b4(Te6edf3displayCanvasTb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3drawImageTb4b4b4(Te6edf3statCanvasTb4b4b4, T79c0ff64Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3scaledCanvas Tff7b72= Te6edf3documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"Ta5d6ffcanvasTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3scaledCanvasTb4b4b4.Te6edf3width Tff7b72= T79c0ff512Tb4b4b4;
Te6edf3scaledCanvasTb4b4b4.Te6edf3height Tff7b72= T79c0ff256Tb4b4b4;
Tff7b72const Te6edf3sCtx Tff7b72= Te6edf3scaledCanvasTb4b4b4.Te6edf3getContextTb4b4b4(Ta5d6ff"Ta5d6ff2dTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3sCtxTb4b4b4.Te6edf3imageSmoothingEnabled Tff7b72= Tffa657falseTb4b4b4;
Te6edf3sCtxTb4b4b4.Te6edf3drawImageTb4b4b4(Te6edf3canvasTb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff512Tb4b4b4, T79c0ff256Tb4b4b4)Tb4b4b4;

Tff7b72return Te6edf3scaledCanvasTb4b4b4.Te6edf3toDataURLTb4b4b4(Ta5d6ff"Ta5d6ffimage/pngTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3_frameBufferToCanvasTb4b4b4(Te6edf3fbTb4b4b4, Te6edf3wTb4b4b4, Te6edf3hTb4b4b4, Te6edf3bgTb4b4b4, Te6edf3fgTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3c Tff7b72= Te6edf3documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"Ta5d6ffcanvasTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3cTb4b4b4.Te6edf3width Tff7b72= Te6edf3wTb4b4b4;
Te6edf3cTb4b4b4.Te6edf3height Tff7b72= Te6edf3hTb4b4b4;
Tff7b72const Te6edf3ctx Tff7b72= Te6edf3cTb4b4b4.Te6edf3getContextTb4b4b4(Ta5d6ff"Ta5d6ff2dTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillStyle Tff7b72= Te6edf3bgTb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillRectTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3wTb4b4b4, Te6edf3hTb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillStyle Tff7b72= Te6edf3fgTb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3let Te6edf3y Tff7b72= T79c0ff0Tb4b4b4; Te6edf3y Tff7b72< Te6edf3hTb4b4b4; Te6edf3yTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Te6edf3let Te6edf3x Tff7b72= T79c0ff0Tb4b4b4; Te6edf3x Tff7b72< Te6edf3wTb4b4b4; Te6edf3xTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3idx Tff7b72= Te6edf3MathTb4b4b4.Te6edf3floorTb4b4b4(Tb4b4b4(Te6edf3y Tff7b72* Te6edf3w Tff7b72+ Te6edf3xTb4b4b4) Tff7b72/ T79c0ff8Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3bit Tff7b72= Tb4b4b4(Te6edf3fbTb4b4b4[Te6edf3idxTb4b4b4] Tff7b72>Tff7b72> Tb4b4b4(T79c0ff7 Tff7b72- Tb4b4b4(Te6edf3x Tff7b72% T79c0ff8Tb4b4b4)Tb4b4b4)Tb4b4b4) Tff7b72& T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3bitTb4b4b4) Te6edf3ctxTb4b4b4.Te6edf3fillRectTb4b4b4(Te6edf3xTb4b4b4, Te6edf3yTb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3cTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72<Tff7b72/Te6edf3scriptTff7b72>

Served by rngit 1.4.2 - Generated in 0.12s